package io.esirong.base.mvp;


/**
 * 负责业务展示，演示。业务操作，交互管理
 * Presenter 不要涉及到平台代码（这里指Android SDK)
 * Presenter 不需要知道view的内部构件（只是接口）
 *
 * @author 黄嵘才(HuangRc)
 */
public interface IBasePresenter<V extends IBaseView, M extends IBaseModel> {

    void start();

    <P> void attachView(V view);

    <P> void detachView(V view);

    /**
     * 返回绑定相关的View实现
     *
     * @return View实现
     */
    V getView();

    M getModel();

    /**
     * 获取字符串资源
     * <P>获取定义在R.String中的字符串资源
     *
     * @param id 来自R.string
     * @return 字符串
     */
    String getString(int id);


}
